import java.util.Scanner;

public class Main {

    public static long ret;
    public static long a = (long)(1e9 + 7);
    public static int sum;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int m = sc.nextInt();
        sum = m + n;


        dfs(0, -1, n, m, 2);

        System.out.println(ret);

        sc.close();
    }

    /**
     *
     * @param size 已经遇到的花和店的总数
     * @param param 这一次遇到的是花还是店，0表示店，1表示花
     * @param n 剩余店的个数
     * @param m 剩余花的个数
     * @param x 剩余多少斗酒
     */
    public static void dfs(int size, int param, int n, int m, int x) {
        if (size == sum) {
            if (param == 1 && x == 0) {
                ret = (ret + 1) % a;
            }
            return;
        }

        //选店
        if (n > 0) {
            dfs(size + 1, 0, n - 1, m, x * 2);
        }

        //选花
        if (x > 0 && m > 0) {
            dfs(size + 1, 1, n, m - 1, x - 1);
        }
    }
}
